package com.minimalist.lindi.service;

import com.minimalist.common.config.mybatis.bo.PageResp;
import com.minimalist.common.entity.lindi.po.LindiContractTemplateFieldOption;
import com.minimalist.common.entity.lindi.vo.contracttemplatefieldoption.LindiContractTemplateFieldOptionQueryVO;
import com.minimalist.common.entity.lindi.vo.contracttemplatefieldoption.LindiContractTemplateFieldOptionVO;
import com.mybatisflex.core.service.IService;

/**
 * 林地指标平台_合同模板字段选项表 服务层。
 *
 * @author 11987
 * @since 2025-05-31
 */
public interface LindiContractTemplateFieldOptionService extends IService<LindiContractTemplateFieldOption> {

    /**
     * 添加合同模板字段选项
     *
     * @param contractTemplateFieldOptionVO 合同模板字段选项VO
     */
    void addContractTemplateFieldOption(LindiContractTemplateFieldOptionVO contractTemplateFieldOptionVO);

    /**
     * 根据ID删除合同模板字段选项
     *
     * @param contractTemplateFieldOptionId 合同模板字段选项ID
     */
    void deleteContractTemplateFieldOptionByContractTemplateFieldOptionId(Long contractTemplateFieldOptionId);

    /**
     * 根据ID更新合同模板字段选项
     *
     * @param contractTemplateFieldOptionVO 合同模板字段选项VO
     */
    void updateContractTemplateFieldOptionByContractTemplateFieldOptionId(LindiContractTemplateFieldOptionVO contractTemplateFieldOptionVO);

    /**
     * 分页查询合同模板字段选项列表
     *
     * @param queryVO 查询条件
     * @return 分页结果
     */
    PageResp<LindiContractTemplateFieldOptionVO> getPageContractTemplateFieldOptionList(LindiContractTemplateFieldOptionQueryVO queryVO);

    /**
     * 根据ID查询合同模板字段选项
     *
     * @param contractTemplateFieldOptionId 合同模板字段选项ID
     * @return 合同模板字段选项VO
     */
    LindiContractTemplateFieldOptionVO getContractTemplateFieldOptionByContractTemplateFieldOptionId(Long contractTemplateFieldOptionId);
}
